home *** CD-ROM | disk | FTP | other *** search
-
-
- ZenNode - Possibly the fastest DOOM(tm) BSP builder yet.
-
- Version 0.96 by Marc Rousseau (rousseaum@pictel.com)
-
-
- BACKGROUND:
-
- After playing around with a few level editors for DOOM, I noticed that
- most of them took a long time to build the NODES structure. Even worse, some
- of them built NODES that didn't work! So, I decided I'd try writing a
- NODES builder that 1) built valid NODES and 2) built them FAST. Well, after
- a month or two of fooling around, ZenNode is here. I believe both objectives
- have been reached. I've compared it to several other NODES builders out there
- and it blows them all away! It's written entirely in C/C++ ( actually the
- OS/2 version now has two routines in assembly ). It could probably be sped up
- with a little assembly code ( or a better optimizing compiler ).
-
- This .ZIP file contains essentially a beta of ZenNode. I'm still working
- on a few more features, but it is a fully functional NODES builder for DOOM
- .WAD files. ZenNode will rebuild either a single level or all the levels in
- a .WAD file. This version will accept either DOOM, DOOM II, Heretic, and/or
- HEXEN .WADs. Try it out. Let me know what you think.
-
-
- DESCRIPTION:
-
- ZenNode will read the level description from a .WAD file and create either
- a new BLOCKMAP resource, REJECT resource, and/or NODES/SEGS/SSECTOR resources.
- Levels in a .WAD may be specified on the command line, or, if none are
- specified, all of the maps in a .WAD will be rebuilt.
-
- As it completes a resource, ZenNode will print some information indicating
- the results. When a BLOCKMAP is completed, it will display the new/old size
- of the block map and a percentage of the block map that is actually used by
- the map. After it rebuilds the BSP tree, it will display the number of new/
- old NODES and SEGS that it created along with the original numbers.
-
-
- NEW FEATURES:
-
- Version 0.96:
-
- Support for 'special effects' has been improved. Using the /nu switch,
- you can affect the creation of sub-sectors. What this means ( for those of
- you who don't know/care what a sub-sector is ) is that you can get most of
- the special effects to work in your .WAD file. By default all sub-sectors
- are unique. This works with most special effects ( ie: deep-water, invisible
- stairs, ... ). If the effect you're trying to achieve doesn't work, try
- turning off this feature with /nu-. This works for other effects, such as
- light striking a wall from no visible source ( different sector ).
-
- For those of you who think ZenNode is too slow <g>, there's a new method
- for partitioning available for you! Both of the existing algorithms examine
- every valid segment to see if they should be used as the partition for a node.
- Examining every segment can slow things down, so if you really can't wait, if
- ZenNode is way too slow for you, try the new algorithm. It only looks at a
- small sub-set of segments instead ( saving you valuable seconds that could be
- used testing your new .WAD ).
-
- You can now 'customize' ZenNodes partitioning logic! The formula used to
- determine the merit of a particular SEG is now user adjustable. You can now
- set the four coefficients used in the calculation. If you don't like the
- way ZenNode picks lines, or you just want to experiment, now you can actually
- do something about it. The metric formula used is:
-
- metric = ( L * R ) / ( x1 * S / x2 ) - ( x3 * S + x4 ) * S;
-
- Where L, R, and S represent the # of SEGS to the left, right, and split by the
- candidate SEG. Checks are made to avoid division by zero. The programmable
- values x1, x2, x3, and x4 can be modified by setting the environment variables
- ZEN_X1, ZEN_X2, ZEN_X3, and ZEN_X4 respectively. The default settings are:
- x1=24, x2=5, x3 = 1, x4=25. ( Older versions of ZenNode used the values x1=4
- or 5, x2=1, x3=0, x4=0 ). Algorithm 2 also uses a similar set of variables,
- ZEN_Y1, ZEN_Y2, ZEN_Y3, and ZEN_Y4, where L, R, and S represent sectors rather
- than SEGS. The default settings are: y1=0, y2=1, y3=1, y4=5 ). Have fun.
-
-
- Version 0.95:
-
- Support for Hexen has been added. This has been largely untested, but a
- quick test of the hexen.wad file seems to be working. So, as soon as you get
- your favorite WAD Editor to support Hexen, ZenNode will be ready!
-
- ZenNode now offers two methods of partitioning your level. The new method
- makes an attempt to minimize the average depth of the BSP tree. This should
- make it slightly faster for the DOOM engine to render a screen, since it has
- to traverse fewer NODES each time. The original method is still intact and
- attempts to minimize the number of splits made. Currenty the new method has
- not been optimized for speed but it is still reasonably fast.
-
- BSPInfo has been included to allow you to gather information about how
- your node builders compare to each other. You can see if one favors certain
- characteristics over others, or just get an overall feel for their performance.
-
-
- REQUIREMENTS:
-
- 1) A machine capable of running DOOM - 386 or better with a few Meg of RAM
- 2) A supported operating:
- a) OS/2 2.0 or higher
- b) DOS ( v?.?? or higher - tested with 5.0 & 6.22 )
- c) a Win32 platform ( Windows NT or Windows 9x )
- 3) A .WAD file
-
-
- ACKNOWLEDGMENTS:
-
- DOOM & DOOM II are trademarks of id Software, inc.,(C)1994.
- Heretic & HEXEN were developed by Raven Software for id Software.
-
- ■ Thanks to the guys at id Software for creating DOOM.
- ■ Thanks to Raven Software for putting out Heretic & Hexen.
- ■ Matt Fell and everyone who helped put together the unofficial DOOM specs.
- This program was written entirely from the descriptions in this file and
- wouldn't have been possible without it.
-
-
- DISCLAIMER:
-
- I've tested the .WADs generated by ZenNode and haven't found any fatal errors
- or HOM (Hall-of-mirrors) side-effects from any level I've tested. However,
- by using this program you assume all responsibility for lost/damaged files
- resulting from the use of a .WAD generated by ZenNode. If you find a level
- that causes either an error in ZenNode, HOMs, or any other problem inside
- DOOM, please let me know.
-